home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / biorythm.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1984-04-24  |  4.1 KB  |  117 lines

  1. 5        REM * BIORHYTHM PROGRAM *
  2. 10       WIDTH "lpt1:",132
  3. 20       REM FROM INTERFACE AGE, AUGUST, 1976
  4. 30       REM EDITED & TESTED BY JIM PETERSEN ON 89/27/78
  5. 40       REM %% PROGRAM COMPUTES HOW CERTAIN PERSON WILL FEEL PHYSICALLY,
  6. 50       REM    EMOTIONALLY AND INTELLECTUALLY ON ANY DAY %%
  7. 60       DIM A(12),M$(12)
  8. 70       DATA 0,31,59,90,120,151,181,212,243,273,304,334
  9. 80       FOR I=1 TO 12:READ A(I):NEXT
  10. 90       PI=3.14159
  11. 100      CLS:REM Screen clear character
  12. 110      PRINT:PRINT
  13. 120      PRINT "This program will print out your personal BIO-RHYTHM"
  14. 130      PRINT "analysis for any number of days you select."
  15. 140      PRINT "Dates should be entered in numerical form with the"
  16. 150      PRINT "MONTH, DAY and YEAR separated by commas. I. E."
  17. 160      PRINT "July 4, 1976 would be entered as 7,4,76."
  18. 170      PRINT
  19. 180      INPUT "How many days do you want plotted";S
  20. 190      IF S<=0 THEN 180
  21. 200      PRINT "What is the date at which you would like the";S;"day"
  22. 210      INPUT "analysis to start";M,D,Y
  23. 220      S=S-1
  24. 230      M=INT(M):D=INT(D):Y=INT(Y)
  25. 240      INPUT "What is the date of your birth";MB,DB,YB
  26. 250      MB=INT(MB):DB=INT(DB):YB=INT(YB)
  27. 260      INPUT "What is your name";A$
  28. 280      INPUT "Do you want it on hard copy";HC$
  29. 290      IF HC$="Y" OR HC$="y" THEN P=-1
  30. 300      DEF FNI(X)=INT(20*SIN(2*PI*X/33)+0.5)
  31. 310      DEF FNE(X)=INT(20*SIN(2*PI*X/28)+0.5)
  32. 320      DEF FNP(X)=INT(20*SIN(2*PI*X/23)+0.5)
  33. 330      T=INT(D+365.25*Y+A(M)+0.01*M-0.03)
  34. 340      TB=INT(DB+365.25*YB+A(MB)+0.01*MB-0.03)
  35. 350      X=T-TB
  36. 360      V=INT((40-LEN(A$))/2)
  37. 370      RB=TB-1-INT((TB-1)/7)*7
  38. 380      DATA MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY
  39. 390      FOR I=0 TO 6:READ DAY$(I):NEXT
  40. 400      DATA MON,TUE,WED,THU,FRI,SAT,SUN
  41. 410      FOR I=0 TO 6:READ D$(I):NEXT
  42. 420      DATA JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST
  43. 430      PRINT:PRINT
  44. 440      DATA SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
  45. 450      FOR I=1 TO 12:READ M$(I):NEXT
  46. 455      IF P THEN LPRINT SPC(2):FOR I=1 TO V:LPRINT "*";:NEXT
  47. 460      PRINT SPC(2):FOR I=1 TO V:PRINT "*";:NEXT
  48. 470      COLOR 8,7:PRINT "BIO-RHYTHM ANALYSIS FOR ";A$;:COLOR 7,0
  49. 475      IF P THEN LPRINT "BIO-RHYTHM ANALYSIS FOR ";A$;
  50. 480      PRINT "*";:IF POS(0)<66 THEN 480
  51. 485      IF P THEN LPRINT "*************************";
  52. 490      PRINT:PRINT
  53. 495      IF P THEN LPRINT:LPRINT
  54. 500      R=T-1-INT((T-1)/7)*7
  55. 510      LE=21+LEN(DAY$(R))+LEN(M$(M))+LEN(STR$(D))+LEN(RIGHT$(STR$(Y),2))
  56. 520      V2=INT((64-LE)/2)
  57. 530      PRINT SPC(2):FOR I=1 TO V2:PRINT "*";:NEXT
  58. 535      IF P THEN LPRINT SPC(2):FOR I=1 TO V2:LPRINT "*";:NEXT
  59. 540      COLOR 8,7:PRINT "STARTING DATE: ";DAY$(R);", ";M$(M);STR$(D);", 19";
  60. 545      IF P THEN LPRINT "STARTING DATE: ";DAY$(R);", ";M$(M);STR$(D);", 19";
  61. 550      PRINT RIGHT$(STR$(Y),2);:COLOR 7,0
  62. 555      IF P THEN LPRINT RIGHT$(STR$(Y),2);
  63. 560      PRINT "*";:IF POS(0)<66 THEN 560
  64. 565      IF P THEN LPRINT "*****************";
  65. 570      PRINT:PRINT
  66. 575      IF P THEN LPRINT:LPRINT
  67. 580      LL=LEN(DAY$(RB))+LEN(M$(MB))+LEN(STR$(DB))+LEN(RIGHT$(STR$(YB),2))
  68. 590      LB=LL+18
  69. 600      VB=INT((64-LB)/2)
  70. 610      PRINT SPC(2):FOR I=1 TO VB:PRINT "*";:NEXT
  71. 615      IF P THEN LPRINT SPC(2):FOR I=1 TO VB:PRINT "*";:NEXT
  72. 620      COLOR 8,7:PRINT "BIRTH DATE: ";DAY$(RB);", ";M$(MB);STR$(DB);", 19";
  73. 625      IF P THEN LPRINT "*************** BIRTH DATE: ";DAY$(RB);", ";M$(MB);STR$(DB);", 19";
  74. 630      PRINT RIGHT$(STR$(YB),2);:COLOR 7,0
  75. 635      IF P THEN LPRINT RIGHT$(STR$(YB),2);
  76. 640      PRINT "*";:IF POS(0)<66 THEN 640
  77. 645      IF P THEN LPRINT "****************"
  78. 650      PRINT:PRINT:PRINT
  79. 655      IF P THEN LPRINT:LPRINT:LPRINT
  80. 660      PRINT TAB(20);"DOWN",TAB(39);"CRITICAL",TAB(62);"UP"
  81. 665      IF P THEN LPRINT TAB(20);"DOWN",TAB(39);"CRITICAL",TAB(62);"UP"
  82. 670      PRINT D$(R);D;M$(M);
  83. 675      IF P THEN LPRINT D$(R);D;M$(M);
  84. 680      F(0)=42:F$(0)="*"
  85. 690      F(1)=42+FNI(X):F$(1)="I"
  86. 700      F(2)=42+FNE(X):F$(2)="E"
  87. 710      F(3)=42+FNP(X):F$(3)="P"
  88. 720      FOR I=0 TO 2
  89. 730      FOR J=I+1 TO 3
  90. 740      IF F(I)<F(J) THEN 790
  91. 750      IF F(I)=F(J) THEN F(I)=0:F$(I)="":F$(J)="X":GOTO 790
  92. 760      Q=F(I):Q$=F$(I)
  93. 770      F(I)=F(J):F$(I)=F$(J)
  94. 780      F(J)=Q:F$(J)=Q$
  95. 790      NEXT J:NEXT I
  96. 800      FOR I=0 TO 3
  97. 810      PRINT TAB(F(I));F$(I);
  98. 815      IF P THEN LPRINT TAB(F(I));F$(I);
  99. 820      NEXT
  100. 830      PRINT:X=X+0.5:IF P THEN LPRINT
  101. 835      IF INT(X)<>X THEN 680
  102. 840      IF Z=S THEN 940
  103. 850      R=R+1:IF R=7 THEN R=0
  104. 860      D=D+1:IF M=4 OR M=6 OR M=9 OR M=11 THEN L=30:GOTO 900
  105. 870      IF M=2 AND Y/4=INT(Y/4) THEN L=29:GOTO 900
  106. 880      IF M=2 THEN L=28:GOTO 900
  107. 890      L=31
  108. 900      IF D>L THEN D=D-L:M=M+1:GOTO 920
  109. 910      PRINT D$(R);D;:IF P THEN LPRINT D$(R);D;:Z=Z+1:GOTO 680
  110. 920      IF M=13 THEN M=1:Z=Z+1:GOTO 670
  111. 930      Z=Z+1:IF D=1 THEN GOTO 670 ELSE GOTO 680
  112. 940      PRINT:PRINT
  113. 945      IF P THEN LPRINT:LPRINT
  114. 950      IF P THEN LPRINT CHR$(12)
  115. 960      INPUT "Do you want another Biorhythm";A$:IF LEFT$(A$,1)="Y" OR LEFT$(A$,1)="y" THEN CLEAR 2000:P=0:GOTO 60
  116. 970      END
  117.